package com.hzeport.bgs22emduty.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hzeport.bgs22emduty.config.login.UserInfoDetailVO;
import com.hzeport.bgs22emduty.dto.DutyScheduleInfoDTO;
import com.hzeport.bgs22emduty.dto.DutyScheduleInfoSaveVO;
import com.hzeport.bgs22emduty.dto.DutyScheduleInfoTimeDTO;
import com.hzeport.bgs22emduty.dto.MoneylistDTO;
import com.hzeport.bgs22emduty.dto.scheduleInfo.DutyScheduleInfoDownloadDTO;
import com.hzeport.bgs22emduty.entity.BaseDeptInfo;
import com.hzeport.bgs22emduty.entity.DutySignInfo;
import com.hzeport.bgs22emduty.vo.dutyScheduleInfo.DutyScheduleInfoListVO;
import com.hzeport.bgs22emduty.vo.dutyScheduleInfo.DutyScheduleInfoVO;
import com.hzeport.bgs22emduty.vo.dutyScheduleInfo.DutyScheduleinfoMoneyVO;
import com.hzeport.bgs22emduty.vo.dutydignInfo.DutyScheduleExcleVO;
import com.hzeport.bgs22emduty.common.base.BaseResult;
import com.hzeport.bgs22emduty.common.base.BaseService;
import com.hzeport.bgs22emduty.entity.DutyScheduleInfo;

import java.util.List;

/**
 * ${comments}
 *
 * @author code generator
 * @date 2022-12-02 11:21:59
 */
public interface DutyScheduleInfoService extends BaseService<DutyScheduleInfo> {

    String downloadWord(List<String> yearAndMonth,String type,UserInfoDetailVO userInfoDetailVO) throws Exception;

    List<DutyScheduleExcleVO> downloadExcel(DutyScheduleInfoDownloadDTO dutyScheduleInfoDownloadDTO, UserInfoDetailVO userInfoDetailVO) throws Exception;

    Object getDutyScheduleInfoPage(DutyScheduleInfoListVO dutyScheduleInfo, UserInfoDetailVO userInfoDetailVO) throws Exception;

    BaseResult<Page<DutyScheduleInfoVO>> getlistPage(DutyScheduleInfoDTO dutyScheduleInfo, UserInfoDetailVO userInfoDetailVO);

    Object saveInfo(DutyScheduleInfoSaveVO dutyScheduleInfoSaveVO, UserInfoDetailVO userInfoDetailVO) throws Exception;

//    Object saveInfo(DudyScheduleSaveVO dudyScheduleSaveVO) throws Exception;

    void doApplyRetry(DutyScheduleInfo dutyScheduleInfo, DutySignInfo info);

    BaseResult thisTimeUser(String customnName);

    BaseResult<Page<DutyScheduleinfoMoneyVO>>  moneylist(MoneylistDTO moneylistDTO, UserInfoDetailVO userInfoDetailVO);

    String exportmoney(MoneylistDTO moneylistDTO, UserInfoDetailVO userInfoDetailVO);

    BaseResult    getThisMonthSchedule(Integer year, Integer month);

    BaseResult getTodaySchedule();


    BaseResult<DutyScheduleInfoTimeDTO> nowUser(String customnName, List<BaseDeptInfo> baseDeptInfos,List<DutyScheduleInfo> dutyScheduleInfos);
    BaseResult<DutyScheduleInfoTimeDTO> nowUser(String customnName);

}
